$.fn.serializeObject = function() {
	var o = {};
	var a = this.serializeArray();
	$.each(a, function() {
		if (o[this.name]) {
			if (!o[this.name].push) {
				o[this.name] = [ o[this.name] ];
			}
			o[this.name].push(this.value || '');
		} else {
			o[this.name] = this.value || '';
		}
	});
	return o;
};

function warningMsgToastr(title, message) {
	toastr.options = {
		"closeButton" : true,
		"debug" : true,
		"progressBar" : false,
		"positionClass" : "toast-top-center",
		"onclick" : null,
		"showDuration" : "400",
		"hideDuration" : "500",
		"timeOut" : "2000",
		"extendedTimeOut" : "1000",
		"showEasing" : "swing",
		"hideEasing" : "linear",
		"showMethod" : "fadeIn",
		"hideMethod" : "fadeOut"
	}
	toastr.warning(message, title);
}

function infoMsgToastr(title, message) {
	toastr.options = {
		"closeButton" : true,
		"debug" : true,
		"progressBar" : false,
		"positionClass" : "toast-top-center",
		"onclick" : null,
		"showDuration" : "400",
		"hideDuration" : "500",
		"timeOut" : "2000",
		"extendedTimeOut" : "1000",
		"showEasing" : "swing",
		"hideEasing" : "linear",
		"showMethod" : "fadeIn",
		"hideMethod" : "fadeOut"
	}
	toastr.info(message, title);
}

function errorMsgToastr(title, message) {
	toastr.options = {
		"closeButton" : true,
		"debug" : true,
		"progressBar" : false,
		"positionClass" : "toast-top-center",
		"onclick" : null,
		"showDuration" : "400",
		"hideDuration" : "500",
		"timeOut" : "2000",
		"extendedTimeOut" : "1000",
		"showEasing" : "swing",
		"hideEasing" : "linear",
		"showMethod" : "fadeIn",
		"hideMethod" : "fadeOut"
	}
	toastr.error(message, title);
}

function successMsgToastr(title, message) {
	toastr.options = {
		"closeButton" : true,
		"debug" : true,
		"progressBar" : false,
		"positionClass" : "toast-top-center",
		"onclick" : null,
		"showDuration" : "400",
		"hideDuration" : "500",
		"timeOut" : "3000",
		"extendedTimeOut" : "1000",
		"showEasing" : "swing",
		"hideEasing" : "linear",
		"showMethod" : "fadeIn",
		"hideMethod" : "fadeOut"
	}
	toastr.success(message, title);
}
layui.use([ 'layer' ], function() {

});

/**
 * 1：勾号 2：X号 3：？号 4：锁 5：哭脸 6：笑脸 7：！号
 */
function succuceMsg(msg) {
	layer.msg(msg, {
		icon : 1,
	}, function() {
		// do something
	});
}
function errorMsg(msg) {
	layer.msg(msg, {
		icon : 2,
	}, function() {
		// do something
	});
}
function questionMsg(msg) {
	layer.msg(msg, {
		icon : 3,
	}, function() {
		// do something
	});
}
function lockMsg(msg) {
	layer.msg(msg, {
		icon : 4,
	}, function() {
		// do something
	});
}
function cryFaceMsg(msg) {
	layer.msg(msg, {
		icon : 5,
	}, function() {
		// do something
	});
}

function smileFaceMsg(msg) {
	layer.msg(msg, {
		icon : 6,
	}, function() {
		// do something
	});
}
function sighMsg(msg) {
	layer.msg(msg, {
		icon : 7,
	}, function() {
		// do something
	});
}

$.fn.serializeObject = function() {
	var o = {};
	var a = this.serializeArray();
	$.each(a, function() {
		if (o[this.name]) {
			if (!o[this.name].push) {
				o[this.name] = [ o[this.name] ];
			}
			o[this.name].push($.trim(this.value) || '');
		} else {
			o[this.name] = $.trim(this.value) || '';
		}
	});
	return o;
}

function formToJson(id) {
	var a = $('#' + id).serializeObject();
	return a;
}

function openWindows(title, url, height, width) {
	if (!height) {
		height = '700px'
	}
	if (!width) {
		width = '800px';
	}
	layer.open({
		type : 2,
		title : title,
		content : url,
		shade : [ 0.8, '#393D49' ],
		offset : [ '50px', '10%' ],
		area : [ width, height ],
		zIndex : 19950924,
		end : function() {
			addBoxIndex = -1;
		}
	});
}
function bootstrapTableConfig() {
	var b = {
		method : 'post', // 请求方式（*）
		contentType : 'application/x-www-form-urlencoded; charset=UTF-8',
		toolbar : '#toolbar', // 工具按钮用哪个容器
		striped : true, // 是否显示行间隔色
		cache : false, // 是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
		pagination : true, // 是否显示分页（*）
		sortable : false, // 是否启用排序
		sortOrder : "asc", // 排序方式
		sidePagination : "server", // 分页方式：client客户端分页，server服务端分页（*）
		pageNumber : 1, // 初始化加载第一页，默认第一页
		pageSize : 10, // 每页的记录行数（*）
		pageList : [ 10, 25, 50, 100 ], // 可供选择的每页的行数（*）
		search : false, // 是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
		strictSearch : false,
		showColumns : true, // 是否显示所有的列
		showRefresh : true, // 是否显示刷新按钮
		minimumCountColumns : 2, // 最少允许的列数
		clickToSelect : false, // 是否启用点击选中行
		// height : 500, //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
		uniqueId : "ID", // 每一行的唯一标识，一般为主键列
		showToggle : true, // 是否显示详细视图和列表视图的切换按钮
		cardView : false, // 是否显示详细视图
		detailView : false, // 是否显示父子表
	};
	return b;
}

$.validator.setDefaults({
	highlight : function(e) {
		$(e).closest(".form-group").removeClass("has-success").addClass("has-error")
	},
	success : function(e) {
		e.closest(".form-group").removeClass("has-error").addClass("has-success")
	},
	errorElement : "span",
	errorPlacement : function(e, r) {
		e.appendTo(r.is(":radio") || r.is(":checkbox") ? r.parent().parent().parent() : r.parent())
	},
	errorClass : "help-block m-b-none",
	validClass : "help-block m-b-none"
});

jQuery.validator.addMethod("abc", function(b, a) {
	return this.optional(a) || /^[a-zA-Z0-9_]*$/.test(b)
}, "请输入字母数字或下划线");
jQuery.validator.addMethod("mobile", function(b, a) {
	return this.optional(a) || /^(((13[0-9]{1})|(15[0-9]{1})|(16[0-9]{1})|(17[0-9]{1})|(19[0-9]{1})|(18[0-9]{1}))+\d{8})$/.test(b)
}, "请输入正确的手机号码");

function closeParentWindow() {
	var index = parent.layer.getFrameIndex(window.name);
	parent.layer.close(index);
}
function delayCloseParentWindow() {
	setTimeout("closeParentWindow()", 2000);
}

function encryptByDES(message, key) {
	var keyHex = CryptoJS.enc.Utf8.parse(key);
	var encrypted = CryptoJS.DES.encrypt(message, keyHex, {
		mode : CryptoJS.mode.ECB,
		padding : CryptoJS.pad.Pkcs7
	});
	return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
	;
}
function decryptByDES(ciphertext, key) {
	var keyHex = CryptoJS.enc.Utf8.parse(key);

	var decrypted = CryptoJS.DES.decrypt({
		ciphertext : CryptoJS.enc.Base64.parse(ciphertext)
	}, keyHex, {
		mode : CryptoJS.mode.ECB,
		padding : CryptoJS.pad.Pkcs7
	});

	return decrypted.toString(CryptoJS.enc.Utf8);
}

function getCookie(name) {
	var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
	if (arr = document.cookie.match(reg))
		return unescape(arr[2]);
	else
		return null;
}

// js 端设置统一属性
$.ajaxSetup({
	contentType : "application/x-www-form-urlencoded;charset=utf-8",
	complete : function(XMLHttpRequest, textStatus) {
		// 通过XMLHttpRequest取得响应头，sessionstatus，
		if (XMLHttpRequest.status == 40132) {
			// 如果超时就处理 ，指定要跳转的页面
			window.location = parent.window.location.href;
		}
	}
});